1. Field of the Invention
The present invention relates generally to software for developing graphical device management applications for managing remote devices. More specifically, the present invention relates to technology that enables the rapid development of graphical user interfaces for remote devices through the use of a virtual console.
2. Background Information
As computer networks continue to grow at a rapid pace, it is not uncommon for the networks to span organizational and geographical boundaries forming enterprise networks. Many of the enterprise network and computer devices upon which the network relies, such as switches, routers, bridges, hubs, and gateways, must often be remotely configured in order to effectively manage the network.
The present generation of many networking and computing devices supports both local and remote methods of configuration. For example, the use of a locally connected terminal to configure a device using a console user interface (CUI) to the device's serial console is very common. At the same time the use of a remotely connected workstation with a graphical user interface (GUI) to configure the same device is also an expected device management product feature. Though running on different platforms, both the CUI and GUI must use the same predefined command set to update the configuration file. Regardless of the method used, the ultimate purpose is to refresh the state of the remote device's configuration kernel (CK) by means of a configuration file. The CK includes all the variables, data structures and functions whose purpose is to maintain the state of the configuration of the device (e.g. user names, passwords, timeout values, etc.). The configuration file is an ASCII flat file that contains configuration commands used to refresh the CK.
One issue for programmers developing and maintaining device management application software is the redundancy and duplication of effort needed to maintain and support both the local and remote methods of device configuration. To a certain degree the remote GUI developer must code the same intelligence for providing configuration functionality as does the local CUI developer. Although the CUI and GUI user interfaces will differ, the underlying requirements of the command set necessary to update the configuration file will be the same. Consequently, the GUI developer ends up having to maintain command set aware source code that duplicates the functions of the CUI firmware implemented in the remote device's serial console.
One solution to eliminating the redundancy would be to port the CUI to the remote platform used to remotely manage and configure devices. However, the CUI is often implemented in firmware that cannot easily run on a non-native platform such as that running a typical device management system GUI. For example, not all variables required for the operation of the console firmware are able to be resolved in a non-native remote platform. Consequently, most software developers employ a brute force approach in the development of GUI applications for remote device management.
The brute force approach such as that used by previous versions of the Shiva Virtual Private Networking (VPN) Manager, one component of a suite of graphical network management applications from Intel Corporation, the assignee of the present invention, is illustrated in FIG. 1. First, the configuration file is downloaded from the remote device 110 of process 100 into the GUI application. Then, the user modifies the configuration file using the GUI application 120. Finally, the process is reversed by uploading the modified configuration file back to the remote device 130. The modified configuration file then refreshes the state of the CK with configuration changes that reflect the user modifications.
This approach has several drawbacks, not the least of which is the requirement of associating each command parsed from the configuration file with the appropriate graphical component of the GUI application. The number of different graphical components that can be employed in a typical GUI application is enormous. A significant amount of intelligence must be coded in the GUI to associate all the configuration commands parsed from the downloaded configuration file with their corresponding graphical components. Typically, an elaborate routine is required to populate the graphical components based on the downloaded and parsed configuration commands, and a similarly elaborate routine is required to reconstruct the configuration commands for upload based on the graphical components' contents. Intricate validation mechanisms must be employed to ensure that the commands uploaded back to the remote device contain no illegal parameters. Moreover, it is likely that interdependencies between certain commands would further complicate the validation mechanisms.
In order to keep up with the rapid pace of remote computer and networking device management technology, it is clear that new approach for developing graphical device management applications is needed. An approach that facilitates the rapid development and maintenance of GUI applications for remote device management is therefore desirable, not only to eliminate the redundancy currently involved in maintaining multiple methods of updating device configurations, but also to reduce the complexity. One approach is the integration of the CUI and GUI interfaces in a user-friendly way—an approach that presents a unique set of challenges, requiring a new and novel solution.